package com.loctek.importexport;

import android.content.Intent;

import com.loctek.importexport.di.component.AppComponent;
import com.loctek.importexport.di.component.DaggerAppComponent;
import com.loctek.importexport.di.module.AppModule;
import com.orhanobut.logger.Logger;
import com.loctek.importexport.base.BaseApp;
import com.loctek.importexport.mvp.acitvity.LoginActivity;
import com.loctek.importexport.util.PreferencesUtility;
import com.loctek.importexport.util.ToastUtils;
import com.tencent.bugly.crashreport.CrashReport;


/**
 * ━━━━━━神兽出没━━━━━━
 * 　　　┏┓　　　┏┓
 * 　　┏┛┻━━━┛┻┓
 * 　　┃　　　　　　　┃
 * 　　┃　　　━　　　┃
 * 　　┃　┳┛　┗┳　┃
 * 　　┃　　　　　　　┃
 * 　　┃　　　┻　　　┃
 * 　　┃　　　　　　　┃
 * 　　┗━┓　　　┏━┛
 * 　　　　┃　　　┃  神兽保佑
 * 　　　　┃　　　┃  代码无bug
 * 　　　　┃　　　┗━━━┓
 * 　　　　┃　　　　　　　┣┓
 * 　　　　┃　　　　　　　┏┛
 * 　　　　┗┓┓┏━┳┓┏┛
 * 　　　　　┃┫┫　┃┫┫
 * 　　　　　┗┻┛　┗┻┛
 * ━━━━━━感觉萌萌哒━━━━━━
 * <p>
 * 作者：司海林
 * 邮箱：sihailin@sina.cn
 * 时间：2017/9/7
 * 描述：应用app
 */
public class App extends BaseApp {
    private AppComponent mAppComponent;


    static PreferencesUtility preferences;

    private String token;

    @Override
    public void onCreate() {
        super.onCreate();

//        //Picasso支持https
//        OkHttpClient client = new OkHttpClient.Builder()
//                .protocols(Collections.singletonList(Protocol.HTTP_1_1))
//                .build();
//        Picasso.setSingletonInstance(new Picasso.Builder(this).
//                downloader(new ImageDownLoader(client))
//                .build());

        // Bugly日志上报组件
        CrashReport.initCrashReport(this);
        Logger.init("LogTAG");
        ToastUtils.init(this);
        //Dagger 注入 app module
        mAppComponent = DaggerAppComponent.builder().appModule(new AppModule(this, Constants.BASE_URL)).build();
        preferences = PreferencesUtility.getInstance(this);
        token = preferences.getToken();

    }

    public void logout() {
        Intent intent = new Intent();
        intent.setAction(Constants.ACTION_INTENT_OUT_LOGIN); // 说明动作
        sendBroadcast(intent);// 该函数用于发送广播
        setToken(null);
        Intent intent2 = new Intent(this, LoginActivity.class);
        intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent2);
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
        preferences.setToken(token);
    }

    public void gotoHome() {
//        Intent intent = new Intent();
//        intent.setAction(Constants.ACTION_INTENT_GOTO_HOME); // 说明动作
//        sendBroadcast(intent);// 该函数用于发送广播
    }

    public AppComponent getAppCommponent() {
        return mAppComponent;
    }


}
